// Object.assign():将多个源对象的属性复制到一个目标对象中
// 将所有可枚举的 自身属性从一个或多个源对象复制到目标对象。它返回目标对象。



const target = {
    a: 123,
    b: 345
}
const source = {
    a: 567,
    c: 890
}

const source2 = {
    a: 222,
    b: 111
}

const result = Object.assign(target, source, source2)
console.log(result); //{ a: 222, b: 111, c: 890 }
console.log(result === target); //true  :其结果指向目标对象，其值发生变化（复制，添加、删除）
console.log(result === source); //false

// 传入一个对象，可利用Object.assgin()进行浅克隆，复制其值，但新创建的对象的指向不变
function objFn(obj) {
    const newObj = Object.assign({}, obj)
    newObj.name = 'newwwww';
    console.log('newObj', newObj);
    return newObj
}

const baseObj = { name: 'xxx' }

objFn(baseObj)